<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use think\Db;
use think\Validate;

class Manager extends Controller
{
	
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
    	$result = Db::table('rfzs_manager')->paginate(3);
    	
    	// 获取分页
    	$page = $result->render();
    	
        //
	    return view('manager/index', [
	    	'user_list' => $result,
		    'page'  => $page
	    ]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
    	
        //
	    return view('create');
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
		// 接收表单数据
	    $info = $request->post();
	    
	    // 添加验证表单规则
	    $validate = new Validate([
		    'name' => 'require|max:16',
		    'password' => 'require|confirm',
		    'password_confirm' => 'require|confirm:password',
		    'status' => 'number'
	    ]);
	    
	    // 整理表单数据
	    $data = [
		    'name' => $info['name'],
		    'password' => $info['pass'],
		    'password_confirm' => $info['repass'],
		    'status' => $info['status']
	    ];
	    
	    // 添加正则验证用户名规则
	    $validate->rule('name', '/^[\x{4e00}-\x{9fa5}\w]{2,20}$/u');
	    // 添加正则验证密码规则
	    $validate->rule('pass', '/^\w{6,16}$/');
	    
	    if (!$validate->check($data)) {
		    return $this->error($validate->getError());
	    }
	    
	    // 用户添加时间
	    $data['addtime'] = time();
	    // hash加密密码
	    $data['password'] = password_hash($info['pass'], PASSWORD_DEFAULT);
	    // 删除用于确认密码的键值对
	    unset($data['password_confirm']);
	    
	    $result = Db::name('rfzs_manager')->insert($data);
	    
	    return $this->success('添加成功', url('admin/manager/index'));
    	
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
    	// 查询管理员的信息
	    $data = Db::name('rfzs_manager')->where(['manager_id'=>$id])->find();
    	
        //
	    return view('edit', [
	    	'data'  => $data
	    ]);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
	    $info = $request->put();
	    
	    $data = [
	    	'manager_id'    => $id,
	    	'name'  => $info['name']
	    ];
	    
	    $result = Db::name('rfzs_manager')->update($data);
	    
	    if ( $result )
	    {
	    	$this->success('保存成功', url('admin/manager/index'));
	    }else{
	    	$this->error('保存失败');
	    }
	    
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
    	// 执行删除
	    $result = Db::name('rfzs_manager')->delete($id);
     
	    return json(123);
    }
}
